package com.cddx.logistics.domain.pojo;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Size;
import javax.validation.constraints.NotNull;

import java.io.Serializable;
import java.time.LocalDateTime;

import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import net.sf.jsqlparser.expression.DateTimeLiteralExpression;
import org.hibernate.validator.constraints.Length;
import org.springframework.format.annotation.DateTimeFormat;

/**
 *
 * @TableName user
 */
@Data
@NoArgsConstructor
public class User implements Serializable {

    /**
     * id
     */
    @NotNull(message="[id]不能为空")
    @ApiModelProperty("id")
    private Integer userId;
    /**
     * 账户
     */
    @Size(max= 255,message="编码长度不能超过255")
    @ApiModelProperty("账户")
    @Length(max= 255,message="编码长度不能超过255")
    private String account;
    /**
     * 用户姓名
     */
    @Size(max= 255,message="编码长度不能超过255")
    @ApiModelProperty("用户姓名")
    @Length(max= 255,message="编码长度不能超过255")
    private String userName;
    /**
     * 性别
     */
    @Size(max= 255,message="编码长度不能超过255")
    @ApiModelProperty("性别")
    @Length(max= 255,message="编码长度不能超过255")
    private String gender;

    /**
     * 电话
     */
    @Size(max= 255,message="编码长度不能超过255")
    @ApiModelProperty("电话")
    @Length(max= 255,message="编码长度不能超过255")
    private String phone;
    /**
     * 密码
     */
    @Size(max= 255,message="编码长度不能超过255")
    @ApiModelProperty("密码")
    @Length(max= 255,message="编码长度不能超过255")
    private String password;
    /**
     * 0禁用 1启用
     */
    @ApiModelProperty(value = "0禁用 1启用",example = "1", required = false)
    private Integer status;
    /**
     * 部门id
     */
    @ApiModelProperty("部门id")
    private Integer departmentId;

    @ApiModelProperty("住址")
    private String address;

    @ApiModelProperty("入职时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime joinTime;


}
